System and method for graphically building business rule conditions

ABSTRACT

A system and method are disclosed for graphically building business rule conditions. The method of graphically building business rule conditions comprises displaying a menu of function icons for the user, and a menu of business rule attribute icons for the user. The method allows the user to freely drag and drop functions and attributes onto a staging canvas, and relate the functions and attributes to build a graphical depiction of the desired business rule condition. The method generates source code directly from the graphical depiction such that the user does not have to understand the specific syntax and nuances of the development environment or runtime environment for the business rule.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to building business rule conditions through agraphical user interface.

2. Description of the Related Art

Businesses often use integrated business solutions to perform and trackbusiness transactions. The data elements used for these transactions aretypically called business objects. Business objects contain attributes,and the system may create a business object probe from the businessobject, where the probe contains a subset of the attributes of thebusiness object. The business object probe may be passed to a businessrule to see whether the business object probe satisfies the conditionsof the business rule. If the business object probe does satisfy theconditions of the business rule, some system action may be takenaccordingly. For example, a business object probe may comprise thedollar amount of a customer order, and the business rule may allow freeshipping for the customer if the dollar amount is over $100.

In the current art, business rule conditions must be created by someonewith significant experience in programming for the operating system ordevelopment environment that builds the business rule condition. Somesystems require the person entering the condition expression to manuallytype the entire source code directly into a program. Some systems have asemi-automatic method of entering condition expression by allowing auser to make certain text selections from menus or in a wizard to allowthe user to automatically paste some elements of the code into a line oftext that will later be entered into a program.

The current art suffers from several disadvantages. The user in thecurrent art must build the condition into a line of text, and musttherefore mentally visualize the logic of conditions within the businessrule independently in relation to the line of text. In addition, theuser must mentally trace the order of operation of elements entered toensure that all elements of the business rule are properly representedand executed during runtime. Further, the user must understand thesyntax of expression operators, order of operation indicators, andoperands within the target source code of the business rule includingspecial versions of the target source code related to the specificdevelopment environment, because the user ultimately manually finalizesthe business object probe and places it into the intended program.

Finally, the current art is unavailable to someone without significantprogramming skill in the target source code language and developmentenvironment. The nature of condition expression makes it likely thatsomeone unskilled in programming will be developing the basic businessrule conditions. For example, a marketing person might want to give freeshipping on certain orders from customers, or a purchasing manager maywish to flag certain types of check payments for special verification.In these instances, they need to translate the business need to thefinal programmer who then implements it. This process takes time andintroduces the possibility of miscommunication and error.

From the foregoing discussion, it should be apparent that a need existsfor a system and method that allows a user to enter business ruleconditions graphically and automatically. Beneficially, such a systemand method would allow even a non-technical user to visualize thecondition and draft the condition, allow the user to enter conditionelements in any order, revise the condition elements, and tailor thesyntax for the target source code language and development environmentwithout additional input or double-checking by the user.

SUMMARY OF THE INVENTION

The present invention has been developed in response to the presentstate of the art, and in particular, in response to the problems andneeds in the art that have not yet been fully solved by currentlyavailable condition development tools. Accordingly, the presentinvention has been developed to provide a system and method forgraphically building business rule conditions that overcome many or allof the above-discussed shortcomings in the art.

A system of the present invention is presented to graphically buildbusiness rule conditions. The system may comprise a build-time portionand a run-time portion. The build-time portion of the system may beembodied in a development environment operated by a user. The run-timeportion of the system may be embodied in an integration server, anetwork, an enterprise information system, and a business objectprocessing module at run-time.

The development environment may comprise a business object processingmodule, which is programmed by the development environment to beconfigured to process business objects. The development environment mayfurther comprise a business rule creation tool configured to build agraphical representation of a business rule condition thereof, and togenerate a usable source code implementation of the business rulecondition for the business rule processing module directly from thegraphical representation.

The business rule condition creation tool may comprise an expressionicon module configured to list available graphical expression functionicons for the user. The expression function icons available may beconfigured to depend upon compatibility with the development environmentand the rights of the user of the tool. The expression function iconsmay be configured such that the expression function represented isunderstandable to a person without programming skill by the appearanceof the expression function icon. An advanced user may modify a set ofbase expression function icons, and build new expression function iconsthat can be used within the graphical framework of the invention. Thebusiness rule condition creation tool may further comprise an expressionicon module configured to list available functional expression icons,and a business attribute module configured to list available businessattribute icons for the user. Business attribute icons represent theattribute values for a business object.

The business rule condition creation tool may further comprise a userinterface module. The user interface module may accept user input tocombine expression function icons and business attribute icons to builda graphical depiction of a business rule condition for a desiredbusiness rule. The user interface module may provide tools to add, copy,and relate expression function icons and business attribute iconsquickly.

The tool may have an expression definition module. The expressiondefinition module may translate the graphical depiction of the desiredbusiness rule condition into a generic logic expression. The genericlogic expression can then be converted to an expression in a desiredsource code language.

A method of the invention is also presented for graphically buildingbusiness rule conditions. The method may begin with retrieving anexpression function definition file. The expression function definitionfile retrieved may vary depending upon the applicable rights of the userand compatibility with the development environment. The method maycontinue with retrieving a set or a user-defined subset of businessattributes for one or more business object probes. The set of businessattributes may be based on the type of event the business object probeis being designed to evaluate.

The method may continue with displaying a graphical depiction of thedesired business rule condition based upon drag-and-drop input from auser. The method may validate the graphical depiction before translatingthe graphical depiction to a generic logic expression. The method mayproceed with converting the generic logic expression to usable sourcecode of a target language. The source code target language may beselectable by the user.

The method may allow the user to quickly review and debug a businessrule condition. The user may load a previously built business rulecondition, and view a business rule condition pictorially to see therelationships within the probe in an intuitive manner.

A method is also disclosed for drafting a business rule condition andmaking the source code available to another quickly. The method maybegin with determining the requirements of an intended recipient. Themethod may continue with retrieving an expression definition file basedon the rights of the intended recipient. The method may proceed withentering the intended recipient requirements into a business rulecondition creation tool having a graphical condition builder. Finally,the method may conclude with making the source code available to theintended recipient.

Furthermore, the described features, advantages, and characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. One skilled in the relevant art will recognize that theinvention may be practiced without one or more of the specific featuresor advantages of a particular embodiment. In other instances, additionalfeatures and advantages may be recognized in certain embodiments thatmay not be present in all embodiments of the invention.

These features and advantages of the present invention will become morefully apparent from the following description and appended claims, ormay be learned by the practice of the invention as set forthhereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention brieflydescribed above will be rendered by reference to specific embodimentsthat are illustrated in the appended drawings. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered to be limiting of its scope, the inventionwill be described and explained with additional specificity and detailthrough the use of the accompanying drawings, in which:

FIG. 1 is a schematic block diagram illustrating one embodiment of asystem for graphically building business rule conditions in accordancewith the present invention;

FIG. 2 is a schematic block diagram illustrating one embodiment of abusiness rule condition creation tool in accordance with the presentinvention;

FIG. 3 is a schematic block diagram illustrating one embodiment of adata structure from a development environment in accordance with thepresent invention;

FIG. 4 is a schematic block diagram illustrating one embodiment of abusiness rule condition creation tool in accordance with the presentinvention;

FIG. 5 a is a schematic block diagram illustrating one embodiment of agraphical expression function icon, a graphical business objectattribute icon, and a relationship between the graphical expressionfunction icon and the graphical business object attribute icon, inaccordance with the present invention;

FIG. 5 b is a schematic block diagram illustrating one embodiment of agraphical expression function icon, a graphical business objectattribute icon, and a relationship between the graphical expressionfunction icon and the graphical business object attribute icon, inaccordance with the present invention;

FIG. 6 is an illustration of several embodiments of business attributesin accordance with the present invention;

FIG. 7 illustrates several embodiments of graphical function expressionicons in accordance with the present invention;

FIG. 8 is a schematic flow chart diagram illustrating one embodiment ofa method for graphically building business rule conditions in accordancewith the present invention;

FIG. 9 is a schematic flow chart diagram illustrating an alternativeembodiment of a method for graphically building business rule conditionsin accordance with the present invention;

FIG. 10 is a schematic flow chart diagram illustrating an alternativeembodiment of a method for graphically building business rule conditionsin accordance with the present invention; and

FIG. 11 is a schematic flow chart diagram illustrating one embodiment ofa method for drafting business rule conditions in accordance with thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

Many of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of executable code may, forinstance, comprise one or more physical or logical blocks of computerinstructions which may, for instance, be organized as an object,procedure, or function. Nevertheless, the executables of an identifiedmodule need not be physically located together, but may comprisedisparate instructions stored in different locations which, when joinedlogically together, comprise the module and achieve the stated purposefor the module.

Indeed, a module of executable code may be a single instruction, or manyinstructions, and may even be distributed over several different codesegments, among different programs, and across several memory devices.Similarly, operational data may be identified and illustrated hereinwithin modules, and may be embodied in any suitable form and organizedwithin any suitable type of data structure. The operational data may becollected as a single data set, or may be distributed over differentlocations including over different storage devices, and may exist, atleast partially, merely as electronic signals on a system or network.

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention. Thus,appearances of the phrases “in one embodiment,” “in an embodiment,” andsimilar language throughout this specification may, but do notnecessarily, all refer to the same embodiment.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

Furthermore, the described features, structures, or characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, software modules, userselections, network transactions, database queries, database structures,hardware modules, hardware circuits, hardware chips, etc., to provide athorough understanding of embodiments of the invention. One skilled inthe relevant art will recognize, however, that the invention may bepracticed without one or more of the specific details, or with othermethods, components, materials, and so forth. In other instances,well-known structures, materials, or operations are not shown ordescribed in detail to avoid obscuring aspects of the invention.

FIG. 1 depicts one embodiment of a system 100 for graphically buildingbusiness rule conditions in accordance with the present invention.Business rule conditions are criteria used to determine whether abusiness object probe meets certain conditions defined by a user. Abusiness rule condition may be configured to operate within a businessrule. A business rule is software code designed to investigate abusiness object probe and determine if the business object probe shouldbe targeted for further analysis or operation. Business rule conditionsmay be used to implement business rules or business processes onbusiness object probes on a client, on a server, or on middleware. Forexample, a user may build a business rule condition that will be set toTRUE whenever a customer orders “at least five books.” In the example,when a business object of type “customer order” comes into the system, abusiness object probe is created with the number of books ordered by thecustomer. The business object probe is compared with the business rulecondition of business rules to determine whether the business objectprobe meets the criteria of “at least five books.”

The system 100 may comprise a build-time section 102 and a run-timesection 104. The build-time section 102 may be a development environment105 configured to generate software code that is used in the run-timesection 104. The software code may comprise a business rule processingmodule 126. Build-time refers to the time in which the user is creatingsoftware that will operate during a future run-time. Run-time refers tothat time during which the built software is operating and ready toprocess business object probes 122. While the user 101 builds newsoftware for the business rule processing module 126, it is possiblethat a previous version of the business rule processing module 126 wouldbe currently operating. Therefore, the system 100 could be utilizing thebuild-time section 102 and the run-time section 104 simultaneously.

The build-time section 102 may comprise a user 101 that interacts with adevelopment environment 105. The development environment 105 maycomprise an integrated development environment such as Eclipse™,NetBeans™, Visual Studio™, and the like. The development environment 105may comprise a business rule condition creation tool 114 stored on andexecuted from a memory device 116. The business rule condition creationtool 114 may be a standalone plug-in to the development environment 105.For example, the business rule condition creation tool 114 could be Javacode that adds to the capability of the base development environment105. The business rule condition 113 created by the business rulecondition creation tool 114 may be connected to the business ruleprocessing module 126. In one embodiment, the business rule processingmodule 126 is configured to execute the business rule 112 on a businessobject probe 122 received over a network 120.

The business rule processing module 126 may further comprise a businessevent input connection 106, a result output connection 108, a businessevent screening utility 110, and the business rule 112. The businessevent input connection 106 may be configured to communicate with anetwork 120 to receive a business object probe 122 from an enterpriseinformation system 124. The business event screening utility 110 may beconfigured to conditionally execute the business rule 112. For example,the business event screening utility 110 may be configured to executethe business rule 112 only when the business event input connection 106receives a business object probe 122 with the information “number ofbooks” over the network 120.

The business rule 112 may comprise a business rule condition 113configured to flag a business object probe 122 as meeting predefinedconditions. The user 101 may set these predefined conditions using thebusiness rule condition creation tool 114. The result output connection108 may be configured to communicate with a network 120 to allow theenterprise information system 124 to receive the business ruleprocessing results 128, which may include the output of the businessrule processing module 126.

The network 120 may be coupled to an integration server 118. Theintegration server 118 may be configured to receive a business objectprobe 122 from the enterprise information system 124 over the network120, and to send the business object probe 122 to the business ruleprocessing module 126. The business rule processing module 126 mayexecute the business rule 112 on the business object probe 122.

FIG. 2 depicts one embodiment of a business rule condition creation tool114 in accordance with the present invention. The business rulecondition creation tool 114 may comprise a graphical condition builder202. The graphical condition builder 202 may comprise an expression iconmodule 204 configured to display a graphical expression function icon206 to the user 101. The graphical expression function icon 206 may bebased on a data structure 230 which the expression icon module 204 mayreceive from the development environment 105.

The graphical expression function icon 206 may comprise a graphic iconwhich can be selected by the user 101 and transferred to a stagingcanvas 214. The graphical expression function icon 206 represents anoperator or function that may be used within a business rule condition.The graphical expression function icon 206 may be selectable by the user101 from a menu that may include multiple expression function icons 206.The graphical expression function icon 206 may be selectable within agraphical hierarchical interface structure, a list, or the like. Thegraphical condition builder 202 may allow drag-and-drop, cut, copy,paste, and other user interface commands from the user 101 to transferthe graphical expression function icon 206 to the staging canvas 214 andto manipulate the graphical expression function icon 206 on the stagingcanvas 214.

The graphical condition builder 202 may further comprise a businessattribute module 208 configured to receive a business event typeidentifier 232, to interact with a business object definition file 234,and to display a graphical business attribute icon 210 to the user 101.The business event type identifier 232 may be received from the businessevent screening utility 110 or from the network 120. The business eventtype identifier 232 can be any description identifying a business eventtype; for example, the business event type identifier 232 might be“customer order,” “paycheck stub notification,” or “A-01.”

The business attribute module 208 may be configured to interact with abusiness object definition file 234 by retrieving a set of businessattributes from the business object definition file 234 based on thebusiness event type identifier 232. For example, the business attributemodule 208 may receive a business event type identifier 232 of “customerpackage order,” and the business attribute module 208 may check“customer package order” in a business object definition file 234 andretrieve image information describing graphical icons and associateddata fields “Packages shipped,” “Customer number,” and “Shippingdestination.”

The graphical business attribute icon 210 is an icon that may be basedon the retrieved set of business attributes. The graphical businessattribute icon 210 graphically represents attributes of a businessobject that a user can use in defining a business rule condition. Thegraphical business attribute icon 210 may be selectable by the user 101from a menu or other user interface component such as a hierarchicalstructure, and the graphical condition builder 202 may allowdrag-and-drop, cut, copy, paste, and other user interface commands fromthe user 101 to manipulate the graphical business attribute icon 210.

The graphical condition builder 202 may further comprise a userinterface module 212 configured to display a staging canvas 214 to theuser 101. The staging canvas 214 may have a result icon 126. The resulticon 126 may represent a BOOLEAN result value for the business rulecondition. The graphical condition builder 202 may also display a set ofgraphical expression function icon 206 and graphical business attributeicons 210.

In one embodiment, the staging canvas 214 is configured to receive oneor more graphical expression function icons 206 and one or moregraphical business attribute icons 210. The staging canvas 214 may becalled the “drawing area,” and it may be configured to allow placementof the graphical icons 206, 210, one or more result icons 216, andgraphical elements that relate all of the icons 206, 210, 216. In oneembodiment, the graphical elements that relate all of the icons 206,210, 216 comprise directional arrows that can be dragged to input portsand output ports of the icons 206, 210, 216 to indicate the operationalflow of a condition 222.

The user 101 may interact with the user interface module 212 withdrag-and-drop user commands 218, keyboard shortcuts, and the like. Theuser interface module 212 may position the graphical expression functionicon 206 and the graphical business attribute icon 210 on the stagingcanvas 214 according to the user 101 interactions. The user interfacemodule 212 may also relate the icons 206, 210, 216 according to the user101 interactions. The positioned and related icons 206, 210, 216 maydefine a graphical representation of a condition 222.

In one embodiment, a graphical expression function icon 206 may operatewithout being related to any graphical business attribute icon 210 orthe result icon 216. For example, a graphical expression function icon206 may represent an operation to put an entry into a log file each timethe business rule condition 113 executes. A graphical expressionfunction icon 206 may thus provide a useful function for the businessrule condition 113 without the user 101 relating the icon 206 to anyother icon 206, 210, 216.

The graphical condition builder 202 may further comprise an expressiondefinition module 220. The expression definition module 220 may beconfigured to translate the graphical representation of a condition 222into a logical expression 224. In one embodiment, the logical expression224 is expressed using a defined grammar. Alternatively, the logicalexpression 224 is expressed in a preselected programming language, forexample “C.” The logical expression 224 may comprise a genericprogramming language or other encoding of logic.

The graphical condition builder 202 may further comprise a source codemodule 226 configured to convert the logical expression 224 to acondition expressed in source code 228. The source code module 226 maybe configured determine a target source code identifier 225 whichidentifies a target source code language and to convert the logicalexpression 224 to a condition in the source code 228 having a syntaxcompatible with the target source code language. The target source codelanguage can be any language used for programming computers, includingat least dBASE, SQL, Java, LISP, PERL, PASCAL, FORTRAN, BASIC, VISUALBASIC, ASSEMBLY, an application-specific source code language, adevice-specific source code language, and variations of the “C”language.

An application-specific language might be a special version of aprogramming language created for a certain software application, aproprietary programming language, or any other non-standard language.Examples may include, but are not limited to, the “M-file” programminglanguage in Matlab by Mathworks, or Visual Basic for Applications byMicrosoft. A device-specific source code language may be business ruleapplication creation software like Amit (Active Middleware Technology),Versata Studio & Logic Server, Blaze Advisor, and the like.

FIG. 3 depicts one embodiment of a schematic block diagram of a datastructure 230 in accordance with the present invention. The datastructure 230 may be imported from the development environment 105 tothe expression icon module 204. The data structure 230 may comprise aset of graphical function icons 302, which may be a set of graphicalfunction icons 302 supported within the development environment 105.

The data structure 230 may further comprise definitions 304 for the setof graphical function icons 302. The definitions 304 may comprise, foreach of the set of graphical function icons 302: numbers of input andoutput ports, types of data expected at the input and output ports, anda logical description of the operations performed by the icon.

For example, the definition 304 for a graphical function icon of “AND”may comprise two input ports described as “A” and “B”, one output portdescribed as “C”, BOOLEAN data expected at the input and output ports,and an logical description of “If A and B.” In a further example, thedefinition 304 for a graphical function icon of “Log execution” maycomprise zero input ports and zero output ports, and a logicaldescription of “Log the execution of the business rule condition.” Thedefinitions 304 may be encoded in an XML file, or they may be stored inany parseable format such as a spreadsheet, a comma delimited file, andthe like. In one embodiment, the data structure elements 302 and 304 maybe combined into an expression function definition file 303.

The data structure 230 may further comprise source code syntax 306specific to the development environment 105. For example, the businessrule condition creation tool 114 may be a plug-in configured to operatewithin Borland® C++ or Microsoft® C++, and the source code syntax 306data may contain the information required to build the condition sourcecode 228 within either C++ environment. In the example, the expressionicon module 204 would use information on the development environment 105to import the environment-specific source code syntax 306 from the datastructure 230.

FIG. 4 depicts one embodiment of a schematic block diagram of a businessrule condition creation tool 114. The business rule condition creationtool 114 may comprise a graphical condition builder 202, an expressionvalidation module 402, and a reviewing module 404.

The expression validation module 402 may be configured to validate thegraphical representation of a condition 222. The expression validationmodule 402 may be configured to check the condition icons 206, 210, 216for disconnected input or output ports, invalid input data types,semantic errors, or other types of errors. The expression validationmodule 402 may be configured to operate automatically before theexpression definition module 220 converts the condition 222 into alogical expression 224, or before the source code module 226 convertsthe logical expression 224 into a condition comprising source code 228.The expression validation module 402 may be configured, in oneembodiment, to operate in response to a request from the user 101. Theexpression validation module 402 may be configured to prompt the user101 to fix a detected error.

The reviewing module 404 may be configured to allow the user topictorially review the graphical representation of a condition 222 andmake graphical modifications. The reviewing module 404 may be configuredto load a saved graphical representation of a condition 222 previouslystored. The reviewing module 404 may be configured to activate debuggingfeatures, such as allowing the graphical representation of a condition222 to execute in a simulated environment, viewing intermediate resultsof the operation of the graphical representation of a condition 222 atpoints before the result icon 216, allowing step-by-step execution ofthe business rule condition, and other debugging features well known inthe programming art.

FIG. 5 a illustrates one embodiment of a staging canvas 500 having aresult icon 510 in accordance with the present invention. As shown inFIG. 5 a, the user interface module 212 has already positioned agraphical expression function icon 504 and a graphical businessattribute icon 506 onto the staging canvas 500. The user interfacemodule 212 has also positioned a constant input icon 502 and arelational icon 508 on the staging canvas 500. The relational icon 508may comprise an output designator 516 and an input designator 518. Inone embodiment, the user interface module 212 positions these icons 502,504, 506, 508, 510 in response to drag-and-drop commands 218 from theuser 101.

The relational icon 508 may comprise a directional arrow. The graphicalexpression function icon 504 may include at least one input connector512 and at least one output connector 514. The graphical expressionfunction icon 504 in FIG. 5 a is shown with two input connectors 512 a,512 b and one output connector 514 c. The graphical business attributeicon 506 may include at least one output connector 514. The graphicalbusiness attribute icon 506 in FIG. 5 a is shown with one outputconnector 514 a. The constant input icon 502 in FIG. 5 a is shown withone output connector 514 b.

The staging canvas 500 may be configured to be a part of a screenprovided by the user interface module 212. The user interface module 212may also provide menus with operating system (not shown) commands, menusof relevant utilities to the development environment 105, menus ofavailable graphical expression function icons 206, and menus ofavailable graphical business attribute icons 210. These and otherpotential display features of the user interface module 212 are known tothose of skill in the art, and are not shown in FIGS. 5 a and 5 b tofocus and clarify the illustrated features of the embodiment of theinvention.

FIG. 5 b illustrates one embodiment of a staging canvas 500 having aresult icon 510 in accordance with the present invention. FIG. 5 b isconsistent with a snapshot of the staging canvas 500 at a timesubsequent to the staging canvas 500 as shown in FIG. 5 a. For theembodiment of FIG. 5 b, the user interface module 212 changed therelative size of the staging canvas 500 and repositioned the icons 502,504, 506, 508, 510 in response to drag-and-drop commands 218 from theuser 101. Further, the user interface module 212 has pasted copies ofthe relational icon 508 onto the staging canvas 500 in response todrag-and-drop commands 218 from the user 101. The user 101 could alsouse keyboard shortcuts to make copies of the relational icon 508, ordrag new copies of a relational icon 508 onto the staging canvas 500from a menu.

The user interface module 212 has related the output connector 514 a ofthe graphical business attribute icon 506 to one of the input connectors512 a of the graphical expression function icon 504 in response to adrag-and-drop command 218 from the user 101 that designates the outputconnector icon 514 a and the input connector icon 512 a. The userdrag-and-drop command 218 that designates the connectors may be to dragthe output designator 516 of the relational icon 508 to the outputconnector 514 a, and to drag the input designator 518 of the relationalicon 508 to the input connector 512 a.

Other methods of designating an output connector 514 a as connected toan input connector 512 a are contemplated within the scope of theinvention. Without limitation, the user interface module 212 maydesignate an output connector 514 a as connected to an input connector512 a in response to the user 101 entering a key or keys, and thenclicking the input and output ports consecutively. For example, a user101 may press a key combination, and then click on the desiredconnectors that should be related. Some of the input and outputconnectors of FIG. 5 b are not labeled because such labeling is notnecessary to the understanding of FIG. 5 b and would clutter thefeatures of the embodiment of the invention depicted in FIG. 5 b.

Advantageously, FIG. 5 b illustrates the ability of the user interfacemodule 212 to visually communicate the flow and order of operation ofthe condition. This is done by way of the arrow heads for the relationalicon 508, input connector 512, and output connector 514. In addition,evaluation of order and flow is communicated by the position of theicons on the canvas 500. For most users, the icons can be organized in atop-to-bottom, left-to-right fashion such that the layout of the iconsmatches the way the user reads text. For example, nested operations areintuitively communicated as evaluating first because they would betoward the top left corner of the canvas 500. Of course for other users,order of operation and flow may be communicated in relation to anotherpart of the canvas 500 such as the top, right corner, or the like. Incertain embodiments, the user interface module 212 may automaticallyorganize the icons in a top-to-bottom, left-to-right manner based on howthe connectors 512, 514 are related.

FIG. 6 depicts several embodiments of business attributes 602, 610, 618,626 in accordance with the present invention. The business attributes602, 610, 618, 626 may be stored in a business object definition file234. The business attribute 602 may comprise a business event identifier604, a business event subject identifier 606, and a business eventsubject property value 608.

In one embodiment, the business event identifier identifies the businessobject underlying the business object probe 122. At the systembuild-time 102, the business event identifier 604 is avariable—“BUS_ID”—as shown in FIG. 6. At the system run-time 104, abusiness object probe 122 would have a value for “BUS_ID” distinguishingthe particular underlying business object for the business object probe122 from all other business objects.

In one embodiment, the business event subject identifier 606 ishard-coded into the business object definition file 234. This is thevalue that identifies the purpose of a business attribute 602 to theuser 101 at the system build-time 102. In one embodiment, this will be alabel displayed on the graphical business attribute icon 210. In afurther embodiment, the business event subject identifier 606 may be thetext listed in a menu of available business attributes provided by theuser interface module 212.

Referring back to FIG. 5 a, the business event subject identifier 606for the icon 506 is the value “Boxes Shipped,” which indicates to theuser 101 that at the system run-time 104, the output of the parameterrepresented by this icon 506 will be the number of boxes shipped. In atypical embodiment, the business event subject identifier 606 is usedfor the user 101 at the system build-time 104, and it will not be builtinto the condition comprising source code 228.

In one embodiment, the business event subject property value 608comprises a variable—“PKG_SHPD”, as shown in FIG. 6—that will be thesystem run-time 104 value of the business event subject identifier 606.For example, the business attribute 602 suggests that the parameter“PKG_SHPD” 608 will be the number of boxes shipped 606 for the businessobject identified by the parameter “BUS_ID” 604 in a business objectprobe 122 at system run-time 104.

The following interpretations of the business attributes 602, 610, 618,626 from FIG. 6 are consistent with embodiments of the presentinvention, and help illustrate the usage of the business attributes 602,610, 618, 626, but are not intended to limit the potential uses of thebusiness attributes 602, 610, 618, 626. The drawing element 514 x isused in the following descriptions to indicate generic output iconssimilar to 514 a, 514 b, and 514 c as shown in FIG. 5 a.

Business attribute 602 may have the term “Boxes Shipped” 606 on therelated graphical business attribute icon 210, the icon 210 may have oneoutput icon 514 x that would be equal to the value of the variable“PKG_SHPD” 608 of the business object with an identifier “BUS_ID” 604 ina business object probe 122 at system run-time 104. The expressionvalidation module 402 may be configured to test that the output icon 514x can properly send an INTEGER value, depending upon the format of thePKG_SHPD 608 variable.

Business attribute 610 may have the term “Customer number” 614 on therelated graphical business attribute icon 210, the icon 210 may have oneoutput icon 514 x that would be equal to the value of the variable“CSTM_NO” 616 of the business object with an identifier “BUS_ID” 612 ina business object probe 122 at system run-time 104. The expressionvalidation module 402 may be configured to test that the output icon 514x can properly send an INTEGER value, depending upon the format of theCSTM_NO 616 variable.

Business attribute 618 may have the term “Shipping destination” 622 onthe related graphical business attribute icon 210, the icon 210 may havetwo output icons 514 x that would be equal to the value of the variables“ADDR_LN1” 624 and “ADDR_LN2” 625 of the business object with anidentifier “BUS_ID” 620 in a business object probe 122 at systemrun-time 104. The expression validation module 402 may be configured totest that each output icon 514 x can properly send a STRING value,depending upon the format of the variables ADDR_LN1 624 and ADDR_LN2625.

Business attribute 626 may have the term “Balance due” 630 on therelated graphical business attribute icon 210, the icon 210 may have oneoutput icon 514 x that would be equal to the value of the variable“Balance_dllrs” 632 of the business object with an identifier “ID_field”628 in a business object probe 122 at system run-time 104. Theexpression validation module 402 may be configured to test that theoutput icon 514 x can properly send a CURRENCY value, depending upon theformat of the Balance_dllrs 632 variable.

FIG. 7 depicts several embodiments of graphical expression functionicons 206 in accordance with the present invention. Each of thegraphical expression function icons 702, 704, 706 may comprise at leastone input connector icon 512 and at least one output connector icon 514.Some embodiments of graphical expression function icons 206 may notrequire an input connector icon 512, an output connector icon 514, oreither connector icon 512, 514.

In one embodiment, each of the graphical expression function icons 702,704, 706 is associated with an atomic operator (not shown) within thedata structure 230 which is configured to operate on at least oneoperand and return a result without additional configuration input froma user.

In one embodiment, each of the graphical expression function icons 702,704, 706 comprises a description and an iconic symbol 708 configured toconvey the purpose of the associated atomic operator (not shown) to anon-technical user without knowledge of business rule conditionprogramming. The description may be shown on the icon 702, 704, 706directly, as part of the icon in response to a user 101 action such as amouse-over event or a right-click event, or through some combination ofthese description techniques. In some cases, the description may beunnecessary as the iconic symbol is sufficient to convey the purpose ofthe associated atomic operator to a non-technical user without knowledgeof business rule condition programming.

The embodiment illustrated in the graphical expression function icon 706shows an iconic symbol 708 and description 710 configured to convey thepurpose of the associated atomic operator (not shown) to a non-technicaluser without knowledge of business rule condition programming. The icon706, in one embodiment, has an associated atomic operator thatcalculates a net present value based on a discount rate 512 d, a time inyears 512 e, and a future value in dollars 512 f. In one embodiment, thedescription 710 and iconic symbol 708 shown on the icon 706 aresufficient to convey the purpose of the associated atomic operator to atarget audience, where the target audience is a group of businessadministrators that understand the iconic symbol 708 and description 710illustrated, but that do not have knowledge of business rule conditionprogramming. In a further embodiment, assumptions and furtherinformation to describe the operations of the associated atomic operatorare included when the user 101 right-clicks a computer mouse on the icon706.

In one embodiment, the associated atomic operator for the icon 702performs a logical AND operation on the parameters designated to theinput icons 512. In one embodiment, the associated atomic operator forthe icon 704 performs an arithmetic ADDITION operation on the parametersdesignated to the input icons 512.

The schematic flow chart diagrams that follow are generally set forth aslogical flow chart diagrams. As such, the depicted order and labeledsteps are indicative of one embodiment of the presented method. Othersteps and methods may be conceived that are equivalent in function,logic, or effect to one or more steps, or portions thereof, of theillustrated method. Additionally, the format and symbols employed areprovided to explain the logical steps of the method and are understoodnot to limit the scope of the method. Although various arrow types andline types may be employed in the flow chart diagrams, they areunderstood not to limit the scope of the corresponding method. Indeed,some arrows or other connectors may be used to indicate only the logicalflow of the method. For instance, an arrow may indicate a waiting ormonitoring period of unspecified duration between enumerated steps ofthe depicted method. Additionally, the order in which a particularmethod occurs may or may not strictly adhere to the order of thecorresponding steps shown.

FIG. 8 illustrates one embodiment of a method to graphically buildbusiness rule conditions in accordance with the present invention. Theexpression icon module 204 optionally determines 802 the applicable user101 rights and retrieves 804 an expression function definition file 303from the data structure 230. For example, if the user 101 bought a“Professional” version of the business rule condition creation tool 114,there may be a more extensive set of graphical function icons 302 anddefinitions 304 available to the user 101 than if the user 101 boughtonly the “Standard” version of the business rule condition creation tool114.

In one embodiment, the expression function definition file 303 is acustomizable file where the user 101 can edit the definitions 304 ofmembers of the set of graphical function icons 302. For example, if thedefinitions 304 provided for a standard “AND” function with two inputs,the user 101 could change the definitions 304 such that the standard“AND” function would have three inputs.

In a further embodiment, the expression function definition file 303 isextensible where the user 101 can add new graphical function icons tothe set of graphical function icons 302. For example, if the user 101desired a “bitwise OR” function, and there was no standard “bitwise OR”function, the user could add an appropriate image to the set ofgraphical function icons 302, then insert and associate an appropriatedefinition 304, and the new graphical expression function icon 206 wouldthen be available for selection by the user 101.

The method 800 may continue with the expression icon module 204displaying 806 at least one graphical expression function icon 206 tothe user 101, and with the business attribute module 208 displaying 808at least one graphical business attribute icon 210 to the user 101. Themethod 800 may continue with the user interface module 212 displaying810 a staging canvas 214 having a result icon 216. The user interfacemodule 212 may position 812 at least one graphical expression functionicon 206 and position 814 at least one graphical business attribute icon210 on the staging canvas 214 in response to input from a user 101. Theuser interface module 212 may then define 816 a graphical business rulecondition 222 by graphically relating the at least one positionedgraphical expression function icon 206, the at least one positionedgraphical business attribute icon 210, and the result icon 216 inresponse to input from the user 101.

The method 800 may continue with the expression validation module 402validating 818 the graphical business rule condition 222 to detectsemantic errors. If the graphical business rule condition 222 is notvalid, the expression validation module 402 may prompt 824 the user 101to revise the graphical business rule condition 222 and return todisplaying 810 the staging canvas 214. If the graphical business rulecondition 222 is valid, the method 800 may proceed with the expressiondefinition module 220 translating 820 the graphical business rulecondition 222 into a logical expression 224. Then, the source codemodule 226 may convert 822 the logical expression to source code 228having a syntax compatible with a target source code language.

FIG. 9 illustrates one embodiment of a method 900 to graphically buildbusiness rule conditions in accordance with the present invention. Theexpression icon module 204 receives 902 a compatibility identifier froma hosting application comprising a development environment 105, andimports 904 a graphical function expression icon data structure 230based on the compatibility identifier. For example, the hostingapplication may not support bitwise operations, and a compatibilityidentifier from such hosting applications may point to a data structure230 wherein the expression function definition file 303 does not containany graphical function icons 302 or definitions 304 with bitwiseoperations.

The method 900 may continue with the expression icon module 204displaying 906 at least one graphical expression function icon 206 tothe user 101, and with the business attribute module 208 displaying 908at least one graphical business attribute icon 210 to the user 101. Themethod 900 may continue with the user interface module 212 displaying910 a staging canvas 214 having a result icon 216. The user interfacemodule 212 may position 912 at least one graphical expression functionicon 206 and position 914 at least one graphical business attribute icon210 on the staging canvas 214 in response to input from a user 101. Theuser interface module 212 may then define 916 a graphical business rulecondition 222 by graphically relating the at least one positionedgraphical expression function icon 206, the at least one positionedgraphical business attribute icon 210, and the result icon 216 inresponse to input from the user 101.

The method 900 may continue with the expression definition module 220translating 918 the graphical business rule condition 222 into a logicalexpression 224. Then, the source code module 226 may prompt 920 a user101 for a target source code identifier 225 that identifies the targetsource code language, and convert 922 the logical expression 224 tosource code 228 having a syntax compatible with a target source codelanguage.

FIG. 10 illustrates one embodiment of a method 1000 to graphically buildbusiness rule conditions in accordance with the present invention. Theexpression icon module 204 detects 1002 a development environment 105,and imports 1004 a graphical function expression icon data structure 230based on the development environment 105. For example, the developmentenvironment 105 may not support exponential math operations, and aexpression icon module 204 may be configured to import an appropriatedata structure 230 in that case such the expression function definitionfile 303 does not contain any graphical function icons 302 ordefinitions 304 with exponential math operations.

The method 1000 may continue with the expression icon module 204displaying 1006 at least one graphical expression function icon 206 tothe user 101. The method 1000 may continue with the business attributemodule 208 receiving 1008 a business event type identifier 232 from ahosting application comprising a development environment 105, andretrieving a set of business attributes from the business objectdefinition file 234 based on the business event type identifier 232. Themethod 1000 may proceed with the business attribute module 208displaying 1010 at least one graphical business attribute icon 210 basedon the set of business attributes from the business object definitionfile 234.

The method 1000 may continue with the user interface module 212displaying 1010 a staging canvas 214 having a result icon 216. The userinterface module 212 may position 1012 at least one graphical expressionfunction icon 206 and position 1014 at least one graphical business ruleicon 210 on the staging canvas 214 in response to input from a user 101.The user interface module 212 may then define 1016 a graphical businessrule condition by graphically relating the at least one positionedgraphical expression function icon 206, the at least one positionedgraphical business attribute icon 210, and the result icon 216 inresponse to input from the user 101.

The method 1000 may continue with the expression definition module 220translating 1018 the graphical business rule condition 222 into alogical expression 224. Then, the source code module 226 may convert1020 the logical expression to source code 228 having a syntaxcompatible with a target source code language.

FIG. 11 depicts one embodiment of a method 1100 to draft business ruleconditions. The method 1100 may begin with receiving 1102 the businessrule requirements of an intended recipient. For example, the recipientmay be a customer that calls to request that a business rule be added totheir ordering website so they can send a satisfaction survey to everythird person that orders a new product. The method 1100 may continuewith receiving 1104 the applicable rights of the intended recipient. Forexample, in a human resources application, there may be advancedgraphical function icons 206 available only to intended recipients atthe Vice-President or higher level, and those features could be enabledor disabled according to the applicable rights of the intendedrecipient.

The method 1100 may continue with a user 101 graphically entering 1106the requirements of the intended recipient into a business rulecondition creation tool 114. The method 1100 may proceed with making1108 the source code 228 available to the intended recipient. Making1108 the source code available to the intended recipient may compriseproviding the intended recipient with a printout of the source code 228,providing the intended recipient with an electronic copy of the sourcecode 228, or installing the source code 228 on a system used by theintended recipient such that the effect of the source code 228 isavailable to the intended recipient.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

1. A computer program product comprising a computer readable mediumhaving computer usable program code programmed to generate source codethat defines a business rule condition, the operations of the computerprogram product comprising: displaying at least one graphical expressionfunction icon, at least one graphical business attribute icon, and astaging canvas having a result icon; positioning the at least onegraphical expression function icon on the staging canvas; positioningthe at least one graphical business attribute icon on the stagingcanvas; defining a graphical business rule condition by graphicallyrelating the at least one positioned graphical expression function icon,the at least one positioned graphical business attribute icon, and theresult icon in response to input from a user; translating the graphicalbusiness rule condition into a logical expression; and converting thelogical expression to source code having a syntax compatible with atarget source code language.
 2. The computer program product of claim 1,wherein the business rule condition is configured for operation within abusiness rule.
 3. The computer program product of claim 1, furthercomprising validating the graphical business rule condition to detect asemantic error.
 4. The computer program product of claim 3, furthercomprising prompting the user to revise the business rule condition inresponse to the detected semantic error.
 5. The computer program productof claim 1, wherein the at least one graphical expression function iconincludes at least one input connector icon and at least one outputconnector icon, the at least one graphical business attribute iconcomprises at least one output connector icon, the result icon includesat least one input connector icon, and wherein relating the at least onegraphical expression function icon, the at least one graphical businessattribute icon, and the result icon comprises graphically connecting anoutput connector icon to an input connector icon in response to a dragand drop command that designates the output connector icon and the inputconnector icon.
 6. The computer program product of claim 1, furthercomprising retrieving an expression function definition file, thedefinition file comprising a customizable and extensible set ofcharacteristics for each graphical expression function icon.
 7. Thecomputer program product of claim 6, wherein retrieving the expressionfunction definition file comprises retrieving the expression functiondefinition file based on applicable rights of the user.
 8. The computerprogram product of claim 1, further comprising prompting the user for atarget source code identifier that identifies the target source codelanguage.
 9. The computer program product of claim 8, wherein the targetsource code identifier identifies a target source code language selectedfrom the list consisting of dBASE, SQL, Java, LISP, PERL, PASCAL,FORTRAN, BASIC, Assembly, an application-specific source code language,and a device-specific source code language.
 10. The computer programproduct of claim 1, further comprising receiving a compatibilityidentifier from a hosting application, and retrieving an expressionfunction definition file based on the compatibility identifier, thedefinition file comprising a set of expression functions and a set ofcharacteristics for each of the expression functions, and wherein the atleast one graphical function icon is based on a member of the set ofexpression functions.
 11. The computer program product of claim 1,further comprising importing a data structure that comprises graphicalfunction icons supported within a development environment, logicaldefinitions for the graphical function icons, and source code syntax foreach of the graphical function icons, the syntax specific to thedevelopment environment.
 12. The computer program product of claim 1,further comprising receiving a business event type identifier from ahosting application, retrieving a set of business attributes from abusiness object definition file based on the business event typeidentifier, and wherein the at least one graphical business attributeicon is based on a member of the set of business attributes.
 13. Thecomputer program product of claim 12, wherein each business attributefrom the set of business attributes comprises one of a business eventidentifier, a business event subject identifier, and a business eventsubject property value.
 14. The computer program product of claim 1,wherein the at least one graphical expression function icon isassociated with an atomic operator configured to operate on at least oneoperand and return a result without additional configuration input froma user.
 15. The computer program product of claim 1, wherein the atleast one graphical expression function icon comprises a description andan iconic symbol configured to convey the purpose of an associatedatomic operator to a non-technical user without knowledge of businessrule condition programming.
 16. The computer programming product ofclaim 1, wherein the result icon represents a Boolean result value forthe graphical business rule condition.
 17. A system for draftingbusiness rule conditions, the system comprising: a developmentenvironment comprising a business event input connection, a resultoutput connection, and a business event screening utility configured toconditionally execute a business rule; and a business rule conditioncreation tool stored on a memory device, configured to operate withinthe development environment, the tool having a graphical conditionbuilder comprising: an expression icon module configured to display agraphical expression function icon to a user; a business attributemodule configured to display a graphical business attribute icon to auser; a user interface module configured to display a staging canvashaving a result icon, and configured to accept drag-and-drop usercommands: to position the graphical expression function icon on thestaging canvas; to position the graphical business attribute icon on thestaging canvas; and to define a graphical representation of a conditionwithin a business rule by relating the graphical expression function,the graphical business attribute icon, and the result icon; anexpression definition module configured to translate the condition intoa logical expression; and a source code module configured to convert thelogical expression to a condition comprising source code having a syntaxcompatible with a target source code language.
 18. The system of claim17, further comprising an integration server coupled to a network, theintegration server configured to receive a business object probe from anenterprise information system over the network, and to send the businessobject probe to a business rule processing module configured to executethe business rule on the received business object probe.
 19. The systemof claim 17, wherein the business rule condition creation tool furthercomprises an expression validation module configured to validate thegraphical representation of a condition.
 20. The system of claim 17,wherein the expression icon module is further configured to import adata structure from the development environment, the data structurecomprising a set of graphical function icons supported within thedevelopment environment, logical definitions for the set of graphicalfunction icons, and source code syntax for each of the graphicalfunction icons, the syntax specific to the development environment. 21.The system of claim 17, wherein the at least one graphical expressionfunction icon comprises a description and an iconic symbol configured toconvey the purpose of an associated atomic operator to a non-technicaluser without knowledge of business rule condition programming.
 22. Thesystem of claim 17, wherein the business attribute module is furtherconfigured to receive a business event type identifier from thedevelopment environment, to retrieve a set of business attributes from abusiness object definition file based on the business event typeidentifier, and wherein the graphical business attribute icon is basedon a member of the set of business attributes.
 23. The system of claim17, wherein the business rule condition creation tool further comprisesa reviewing module configured to allow a user to pictorially review andrevise the graphical representation of a condition and make graphicalmodifications.
 24. The system of claim 17, wherein the business rulecondition creation tool is a plug-in to the development environment. 25.A method for drafting business rule conditions, the method comprising:receiving business rule requirements of an intended recipient;graphically defining the business rule by implementing the business rulecondition requirements in a business rule condition creation tool, thetool having a graphical condition builder comprising: an expression iconmodule configured to display a graphical expression function icon to auser; a business attribute module configured to display a graphicalbusiness attribute icon to a user; a user interface module configured todisplay a staging canvas having a result icon, and to acceptdrag-and-drop user commands: to position the graphical expressionfunction icon on the staging canvas; to position the graphical businessattribute icon on the staging canvas; and to define a graphicalrepresentation of a condition within a business rule by relating thegraphical expression function, the graphical business attribute icon,and the result icon; an expression definition module configured totranslate the condition into a logical expression; and a source codemodule configured to convert the logical expression into source codehaving a syntax compatible with a target source code language; andmaking the source code available to the intended recipient.
 26. Themethod of claim 25, wherein the graphical condition builder furthercomprises an expression validation module configured to validate thegraphical representation of a condition.
 27. The method of claim 25,wherein the expression icon module is further configured to import adata structure from a development environment, the data structurecomprising a set of graphical function icons supported within thedevelopment environment, definitions for the set of graphical functionicons, and source code syntax specific to the development environment.28. The method of claim 27, wherein the expression icon module isfurther configured to import the data structure based on the applicablerights of the intended recipient.
 29. The method of claim 25, whereinthe at least one graphical expression function icon comprises adescription and an iconic symbol configured to convey the expressionfunction to a non-technical user without knowledge of business ruleprogramming.
 30. The method of claim 25, further comprising pictoriallyreviewing the graphical representation of a condition and updating thegraphical representation.